Desktop app in development → Join the waitlist
text-sm font-medium ${d?"text-green-accent":"text-text-primary"},l.textContent=e.name;const p=document.createElement("span");p.className="text-xs text-text-secondary ml-2",p.textContent=e.description,a.appendChild(l),a.appendChild(p);const r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.setAttribute("class","w-3.5 h-3.5 text-text-secondary shrink-0"),r.setAttribute("fill","none"),r.setAttribute("viewBox","0 0 24 24"),r.setAttribute("stroke","currentColor"),r.setAttribute("stroke-width","2");const c=document.createElementNS("http://www.w3.org/2000/svg","path");return c.setAttribute("stroke-linecap","square"),c.setAttribute("stroke-linejoin","miter"),c.setAttribute("d","M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"),r.appendChild(c),t.appendChild(s),t.appendChild(a),t.appendChild(r),t}function E(){if(b.textContent=L(o.length),u.replaceChildren(),o.length===0){const e=document.createElement("li");e.className="px-4 py-8 text-center text-sm text-text-secondary font-mono",e.textContent=f.noResults,u.appendChild(e);return}for(let e=0;e<o.length;e++)u.appendChild(I(o[e],e,e===i))}function N(e){o[e]&&(window.location.href=o[e].href)}function h(e){i=Math.max(0,Math.min(e,o.length-1)),E(),u.querySelector([data-index="${i}"])?.scrollIntoView({block:"nearest"})}document.addEventListener("keydown",e=>{(e.metaKey||e.ctrlKey)&&e.key==="k"&&(e.preventDefault(),g.classList.contains("hidden")?y():w())});m.addEventListener("keydown",e=>{e.key==="Escape"?(e.preventDefault(),w()):e.key==="ArrowDown"?(e.preventDefault(),h(i+1)):e.key==="ArrowUp"?(e.preventDefault(),h(i-1)):e.key==="Enter"&&(e.preventDefault(),N(i))});m.addEventListener("input",()=>{v(m.value)});u.addEventListener("mousemove",e=>{const n=e.target.closest("[data-index]");if(n){const d=parseInt(n.getAttribute("data-index"),10);d!==i&&h(d)}});u.addEventListener("click",e=>{const n=e.target.closest("[data-href]");n&&(window.location.href=n.getAttribute("data-href"))});k.addEventListener("click",w);C?.addEventListener("click",y); MCP Server: Local File Transforms for AI Agents
51 tools to convert, compress, merge, and transform files. Predictable outputs, path-based I/O, zero network calls.
Privacy by architecture
No file bytes are sent to the model. Tools operate on paths and write outputs to disk. Some tools return extracted metadata (EXIF tags, checksums, word counts) by design. No telemetry, no network calls during processing.
Beyond read/write
Filesystem MCP reads and writes. VaultTools transforms, and keeps file bytes out of the AI conversation.
Install
Interactive setup that picks your AI tool and directory:
npx @vaulttools/mcp init Or run directly:
npx @vaulttools/mcp --allowed-dir /path/to/your/files Configure
Add VaultTools to your AI tool's MCP configuration:
~/.claude.json
{
"mcpServers": {
"vaulttools": {
"command": "npx",
"args": [
"-y",
"@vaulttools/mcp",
"--allowed-dir",
"/path/to/your/files"
]
}
}
} Available Tools
51 tools across 5 categories: Image (14), PDF (11), Text (12), Dev (9), File (5). Each tool reads input files, processes locally, and writes output. File bytes stay on disk and are never sent to the model.
View full tool referenceOptions
--allowed-dir <path> Directory the server can read from (required, repeatable) none --output-dir <path> Directory for output files, defaults to allowed-dir allowed-dir --verbose Enable verbose logging to stderr off Privacy
No network calls. No uploads. No telemetry. Processing is 100% local.
Local processing. All file operations run on your machine. No files are uploaded anywhere.
Path-based I/O. The AI agent sends file paths, not file bytes. Processed results are written to disk, not returned in conversation.
Directory sandboxing. --allowed-dir restricts which directories the server can access. Nothing outside that boundary is readable.
No telemetry. Zero analytics, no network requests during processing, no phone-home behavior.
Disclaimer
The VaultTools MCP server is designed so that file bytes stay on your machine and are never sent to the model. Only file paths and metadata are exchanged.
However, the AI model that calls these tools operates independently of VaultTools. The model may choose to read, log, or transmit tool outputs according to its own behavior and the policies of its provider. VaultTools has no control over what the model does with the results once they are returned.
By using the MCP server, you acknowledge that VaultTools is not responsible for how the connected AI model handles tool responses. If you are processing sensitive files, review the privacy policies of your AI provider.
サーバー設定
{
"mcpServers": {
"vaulttools": {
"command": "npx",
"args": [
"-y",
"@vaulttools/mcp",
"--allowed-dir",
"/path/to/your/files"
]
}
}
}